package br.edu.fanor.designpattern.composite;

import java.util.Scanner;

public class Nautilus {
	
	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		String sair = null;
		Pastas pastaPrincipal = new Pastas();
		pastaPrincipal.setNome("home");
		Pastas pastaAtual = pastaPrincipal;
		
		while(sair == null) {
			
			System.out.print("root#"+pastaAtual.getNome()+"  ");
			String[] comandos = scan.nextLine().split(" ");
			
			if(comandos != null) {
				if(comandos[0].equals("mkdir")){
					if(comandos[1] != null && !comandos[1].trim().equals("")) {
						pastaAtual.make(comandos[1]);
					} else {
						System.out.println("formato do comando make incorreto!");
					}
				} else if (comandos[0].equals("file")){
					System.out.println();
					System.out.print("Nome Arquivo: ");
					Arquivo arquivo = new Arquivo();
					arquivo.setNome(scan.nextLine());
					System.out.println();
					System.out.print("Tamanho do Arquivo: ");
					arquivo.setTamanho(scan.nextInt());
					pastaAtual.add(arquivo);
					System.out.println();
				} else if (comandos[0].equals("ls")){
					System.out.println(pastaAtual.propriedades());
				} else if (comandos[0].equals("rm")){
					if(comandos[1] != null && !comandos[1].trim().equals("")) {
						pastaAtual.rm(comandos[1]);
					} else {
						System.out.println("formato do comando rm incorreto!");
					}
				} else if(comandos[0].equals("cd")){
					if(comandos[1] != null && !comandos[1].trim().equals("")) {
						if(!comandos[1].equals("..")) { 
							Componente componente = pastaAtual.cd(comandos[1]);
							if(componente != null){
								pastaPrincipal = pastaAtual;
								pastaAtual = (Pastas)componente;
							} else {
								System.out.println();
							}
						} else {
							pastaAtual = pastaPrincipal;
						}
					} else {
						System.out.println("formato do comando cd incorreto!");
					}
				} else if(comandos[0].equals("exit")){
					sair = "exit";
				}
			}
		}
	}

}
